Ссылка на практикум
%%bash
echo 'C1=CC=C2C=CC=C2C=C1 Azulene' > azu.smi
obgen azu.smi > azu.mol
babel -imol azu.mol -omop azu_opt.mop -xk "PM6"
MOPAC2009.exe azu_opt.mop
babel -imopout azu_opt.out -opdb azu_opt.pdb
%%bash
echo 'c1ccc2ccccc2c1 Naphthalene' > napht.smi
obgen napht.smi > napht.mol
babel -imol napht.mol -omop napht_opt.mop -xk "PM6"
MOPAC2009.exe napht_opt.mop
babel -imopout napht_opt.out -opdb napht_opt.pdb
from xmlrpclib import ServerProxy
from IPython.display import Image
import os, sys
# pymol launching
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
### Если вывод в графическое окно тормозит или не нужен, то:
##__main__.pymol_argv = [ 'pymol', '-cp' ]
import pymol
pymol.finish_launching()
from pymol import cmd
### Информацию об ошибках можно смотреть там где запускали ipython notebook
### Будем вставлять файлы изображений
from IPython.display import Image
def Img(name):
cmd.ray()
cmd.png(name)
cmd.reinitialize()
cmd.load('azu.mol')
cmd.rotate(axis='x', angle=70)
cmd.do('set valence, on')
Img('azu.png')
Image(filename='azu.png')
Азулен в конформации шезлонга
cmd.reinitialize()
cmd.load('azu_opt.pdb')
cmd.rotate(axis='x', angle=75)
cmd.do('set valence, on')
Img('azu_mop.png')
Image(filename='azu_mop.png')
После преобразований Mopac выглядит плоским
cmd.reinitialize()
cmd.load('napht.mol')
cmd.rotate(axis='x', angle=-70)
cmd.do('set valence, on')
Img('napht.png')
Image(filename='napht.png')
cmd.reinitialize()
cmd.load('napht_opt.pdb')
cmd.rotate(axis='x', angle=-70)
cmd.do('set valence, on')
Img('napht_mop.png')
Image(filename='napht_mop.png')
С нафталеном глобальных изменений не произошло.
%%bash
babel -imopout azu_opt.out -ogamin azu_opt.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=OPTIMIZE $END\n $BASIS GBASIS=N31 NGAUSS=6 $end\n $system mwords=2 $end/' azu_opt.inp
babel -imopout napht_opt.out -ogamin napht_opt.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=OPTIMIZE $END\n $BASIS GBASIS=N31 NGAUSS=6 $end\n $system mwords=2 $end/' napht_opt.inp
%%bash
gms azu_opt.inp 1 | tee azu_opt.log
%%bash
gms napht_opt.inp 1 | tee napht_opt.log
Хартри-Фок:
%%bash
babel -igamout azu_opt.log -ogamin azu_hart.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=ENERGY $END\n $BASIS GBASIS=N31 NGAUSS=6\n POLAR=POPN31 NDFUNC=1 $END\n $GUESS GUESS=HUCKEL $END\n $system mwords=2 $end/' azu_hart.inp
gms azu_hart.inp 1 | tee azu_hart.log
%%bash
babel -igamout napht_opt.log -ogamin napht_hart.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=ENERGY $END\n $BASIS GBASIS=N31 NGAUSS=6\n POLAR=POPN31 NDFUNC=1 $END\n $GUESS GUESS=HUCKEL $END\n $system mwords=2 $end/' napht_hart.inp
gms napht_hart.inp 1 | tee napht_hart.log
DFT
%%bash
rm -rf /home/students/y12/popov/gamess-scratch/
babel -igamout azu_opt.log -ogamin azu_dft.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS dfttyp=b3lyp RUNTYP=ENERGY $END\n $BASIS GBASIS=N31 NGAUSS=6\n POLAR=POPN31 NDFUNC=1 $END\n $GUESS GUESS=HUCKEL $END\n $system mwords=2 $end/' azu_dft.inp
gms azu_dft.inp 1 | tee azu_dft.log
%%bash
rm -rf /home/students/y12/popov/gamess-scratch/
babel -igamout napht_opt.log -ogamin napht_dft.inp
sed -i 's/ $CONTRL COORD=CART UNITS=ANGS $END/ $CONTRL COORD=CART UNITS=ANGS dfttyp=b3lyp RUNTYP=ENERGY $END\n $BASIS GBASIS=N31 NGAUSS=6\n POLAR=POPN31 NDFUNC=1 $END\n $GUESS GUESS=HUCKEL $END\n $system mwords=2 $end/' napht_dft.inp
gms napht_dft.inp 1 | tee napht_dft.log
%%bash
awk '/TOTAL ENERGY =/{print $4}' *_dft.log
awk '/TOTAL ENERGY =/{print $4}' *_hart.log
Учитывая, что \(E_{Hartree} = 627.509 469\; (kcal/mol)\), получаем таблицу:
Вещество | E Naphthalene | E Azulene | ΔE, Hartree | ΔE, kCal/mol |
---|---|---|---|---|
Хартри-Фок | -383.3549 | -383.2822 | 0.0727 | 45.61994 |
DFT | -385.6402 | -385.5852 | 0.055 | 34.51302 |
Из экспериментов известно, что энергия изомеризации нафталена в азулен составляет 35.3±2.2 kCal/mol. Согласно полученной таблице метод DFT оказался точнее метода Хартри-Фока, если судить по разнице энергий нафталена и азулена. При этом результаты DFT согласуются с экспериментом, в то время как метод Хартри-Фока дал ошибку ~22%.
В Gabedit было открыто окно "Display Geometry/Orbitals/Density/Vibration", в котором был загружен файл napht_dft.log. Затем была построена поверхность двух орбиталей.
HOMO (highest occupied molecular orbital):
34 E=-0.210800
Image(filename='HOMO.png')
Image(filename='LUMO.png')
Тоже самое для азулена
HOMO:
34 E=-0.186200
Image(filename='azuHOMO.png')
LUMO:
35 E=-0.063300
Image(filename='azuLUMO.png')
Сделать какие-либо выводы из этих картинок мне сложно, разве что исследуемые орбитали расположены на азулене и нафталене схожим образом, т.к. номера орбиталей HOMO и LUMO между этими молекулами совпадают.